// 文档 https://github.com/hooke007/MPV_lazy/wiki/4_GLSL

// MIT License

// Copyright (c) 2024 Joao Chrisostomo

// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:

// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.

// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.

//!DESC [ArtCNN_v0_C4F8] (Conv2D)
//!HOOK LUMA
//!BIND LUMA
//!SAVE conv2d_0
//!WIDTH LUMA.w
//!HEIGHT LUMA.h
//!COMPONENTS 4
//!WHEN OUTPUT.w LUMA.w 1.200 * > OUTPUT.h LUMA.h 1.200 * > *

vec4 hook() {
    vec4 result = vec4(-0.028408667, -0.008530259, -0.10151142, -0.022857862);
    result += vec4(0.05562122, -0.15124546, -0.067425594, 0.09573574) * LUMA_texOff(vec2(-1, -1)).x;
    result += vec4(0.0436359, -0.09109577, 0.22944058, -0.36015654) * LUMA_texOff(vec2(0, -1)).x;
    result += vec4(-0.016834574, -0.20841552, -0.16634957, 0.06682315) * LUMA_texOff(vec2(1, -1)).x;
    result += vec4(0.18188885, 0.2879946, 0.14799047, -0.21541959) * LUMA_texOff(vec2(-1, 0)).x;
    result += vec4(0.4262008, 0.016702462, 0.4456635, 0.7950711) * LUMA_texOff(vec2(0, 0)).x;
    result += vec4(0.044066414, -0.03325062, 0.14836338, -0.071765654) * LUMA_texOff(vec2(1, 0)).x;
    result += vec4(0.06761758, 0.045045402, -0.13116062, 0.12421767) * LUMA_texOff(vec2(-1, 1)).x;
    result += vec4(0.11716787, 0.2202034, -0.18797034, -0.24220915) * LUMA_texOff(vec2(0, 1)).x;
    result += vec4(-0.15492782, 0.008231807, 0.13622288, -0.065328546) * LUMA_texOff(vec2(1, 1)).x;
    return result;
}

//!DESC [ArtCNN_v0_C4F8] (Conv2D)
//!HOOK LUMA
//!BIND LUMA
//!SAVE conv2d_1
//!WIDTH LUMA.w
//!HEIGHT LUMA.h
//!COMPONENTS 4
//!WHEN OUTPUT.w LUMA.w 1.200 * > OUTPUT.h LUMA.h 1.200 * > *

vec4 hook() {
    vec4 result = vec4(0.028236793, -0.023203146, -0.057937067, -0.035166398);
    result += vec4(-0.13453217, 0.2090116, 0.0064378777, -0.22812411) * LUMA_texOff(vec2(-1, -1)).x;
    result += vec4(0.28458983, -0.07725425, -0.15494089, 0.09372512) * LUMA_texOff(vec2(0, -1)).x;
    result += vec4(0.074941136, 0.21525651, -0.18938403, -0.091716245) * LUMA_texOff(vec2(1, -1)).x;
    result += vec4(-0.09423151, 0.02773918, 0.35750476, 0.00977827) * LUMA_texOff(vec2(-1, 0)).x;
    result += vec4(0.42034966, -0.21145235, 0.17968105, 0.2282369) * LUMA_texOff(vec2(0, 0)).x;
    result += vec4(-0.38386264, -0.26593247, 0.014726547, -0.13414714) * LUMA_texOff(vec2(1, 0)).x;
    result += vec4(-0.10380571, -0.0060863136, -0.034024537, 0.044303868) * LUMA_texOff(vec2(-1, 1)).x;
    result += vec4(-0.011925546, 0.23192953, 0.040343307, 0.12691143) * LUMA_texOff(vec2(0, 1)).x;
    result += vec4(-0.013634181, -0.024549682, -0.20696642, -0.029515505) * LUMA_texOff(vec2(1, 1)).x;
    return result;
}

//!DESC [ArtCNN_v0_C4F8] (Conv2D-1-ReLU)
//!HOOK LUMA
//!BIND conv2d_0
//!BIND conv2d_1
//!SAVE conv2d_1_0
//!WIDTH LUMA.w
//!HEIGHT LUMA.h
//!COMPONENTS 4
//!WHEN OUTPUT.w LUMA.w 1.200 * > OUTPUT.h LUMA.h 1.200 * > *

vec4 hook() {
    vec4 result = vec4(0.09733363, -0.064133994, -0.086728536, 0.19146349);
    result += mat4(-0.0640796, 0.09251672, 0.007662558, 0.051398378, -0.08567872, 0.13700889, 0.035438918, -0.25316176, 0.068861485, 0.2817141, -0.12397434, -0.12244157, 0.01717772, 0.28785577, 0.009059071, 0.03849782) * conv2d_0_texOff(vec2(-1, -1));
    result += mat4(-0.17978308, 0.05692923, -0.055909798, 0.051185735, 0.14185673, 0.7125436, -0.22961709, 0.117166586, 0.17785978, -0.24711186, 0.15042408, 0.11966212, 0.05220489, -0.78445005, 0.07417796, 0.19087572) * conv2d_0_texOff(vec2(0, -1));
    result += mat4(-0.0077682184, 0.04133287, -0.15757136, -0.058404602, -0.10545092, 0.13321146, -0.08174981, -0.17282628, -0.056743663, -0.5773109, -0.09204164, 0.011271242, 0.11216985, -0.10344191, 0.04916059, -0.18339546) * conv2d_0_texOff(vec2(1, -1));
    result += mat4(0.0021425425, -0.13037767, -0.28964338, 0.21112336, -0.35328367, -0.19481185, 0.011126956, -0.3391915, 0.041481305, 0.11204598, -0.11489705, -0.15218873, -0.22598152, -0.067929044, -0.14838935, 0.33471605) * conv2d_0_texOff(vec2(-1, 0));
    result += mat4(0.33353117, 0.013695085, 0.22922456, 0.0048178313, 0.026547072, 0.14000246, 0.56558985, 0.044696093, 0.45336753, 0.18413997, -0.66693354, 0.060647253, 0.69973814, -0.016858766, -1.341173, -0.40352377) * conv2d_0_texOff(vec2(0, 0));
    result += mat4(-0.048677977, 0.20853049, -0.016813124, 0.007095249, -0.2065475, -0.18491921, 0.27075198, -0.22953336, 0.03625876, -0.19939293, -0.019626332, 0.275898, 0.47168493, 0.3676767, 0.04457603, 0.45161137) * conv2d_0_texOff(vec2(1, 0));
    result += mat4(0.3369419, 0.17587948, 0.15200463, -0.3722807, -0.031221937, -0.084698655, -0.12366493, 0.15360564, 0.04682018, -0.4823214, 0.21625644, 0.20419683, -0.109858036, -0.0720557, -0.06422725, 0.3174839) * conv2d_0_texOff(vec2(-1, 1));
    result += mat4(0.39906523, 0.061123632, 0.39208704, -0.10838533, -0.052821238, -1.0173032, 0.80964434, 0.24066533, 0.15917642, -0.09385332, -0.04713418, -0.3300863, -0.36572868, 0.24729845, 1.0630528, 0.32344177) * conv2d_0_texOff(vec2(0, 1));
    result += mat4(-0.061328474, -0.16802077, 0.08642633, 0.06883096, 0.03648075, 0.83587, 0.0059207003, 0.2240816, 0.016177014, 0.21874364, 0.019698229, -0.13230783, 0.0066753803, 1.053927, -0.021868326, 0.04487957) * conv2d_0_texOff(vec2(1, 1));
    result += mat4(-0.034115285, 0.042114593, -0.0095672775, 0.12993813, 0.15605982, 0.0062449216, -0.07904061, 0.24489869, -0.119484864, -0.15325946, 0.12869704, 0.05666071, 0.060211945, 0.3677371, -0.029366339, 0.34575075) * conv2d_1_texOff(vec2(-1, -1));
    result += mat4(-0.20916633, -0.39844784, -0.17845987, -0.07279615, -0.218597, 0.6124413, 0.13851573, -0.24824429, -0.45224446, -0.31322014, -0.2532151, -0.045421153, -0.073435165, -0.12935932, 0.0513542, 0.01036506) * conv2d_1_texOff(vec2(0, -1));
    result += mat4(0.047787223, -0.16658393, -0.1265576, 0.01602688, -0.20080826, 0.30091524, -0.034236226, 0.11000437, 0.052715786, -0.12229842, 0.0675458, 0.17524566, -0.038681507, 0.096859366, 0.1252504, 0.00592261) * conv2d_1_texOff(vec2(1, -1));
    result += mat4(0.27940696, -0.49480203, 0.1505803, 0.5606009, 0.1339902, -0.21693996, 0.2170143, 0.11622056, 0.23366897, -0.16065013, 0.2526243, 0.43819192, -0.18102975, -0.3356163, 0.107696354, -0.08642077) * conv2d_1_texOff(vec2(-1, 0));
    result += mat4(0.60659784, 0.8652998, -0.72173375, 0.028840998, 0.03456481, -0.6370848, 0.9476944, -0.5817743, 0.05451069, -0.20190112, -0.3889836, 0.063135415, 0.044801712, 0.3904781, 0.046588313, 0.084168695) * conv2d_1_texOff(vec2(0, 0));
    result += mat4(0.100332335, -0.21057825, -0.28660992, -0.037765794, -0.5058511, 0.15539183, 0.17633569, 0.0023918378, -0.1984063, -0.31902438, -0.15929072, -0.3739847, 0.1976687, 0.07126772, 0.013370519, 0.33095437) * conv2d_1_texOff(vec2(1, 0));
    result += mat4(-0.05133071, -0.50283927, -0.19072317, -0.2268198, -0.028364973, -0.3748892, -0.58556694, -0.5611026, -0.10837195, -0.30244938, -0.037980933, 0.48062336, -0.0550103, 0.14114127, -0.2438952, -0.1416767) * conv2d_1_texOff(vec2(-1, 1));
    result += mat4(0.16006061, -0.0716608, 0.540457, -0.39384654, -0.09803653, 0.66712755, 0.020573592, 0.33132076, -0.14546004, 0.48035675, -0.88689363, 0.15497945, -0.13738497, -0.39664438, 0.4586329, -0.026541263) * conv2d_1_texOff(vec2(0, 1));
    result += mat4(0.18625972, -0.1249654, 0.32848057, -0.12261554, -0.090584934, 0.40584007, -0.20869339, -0.003659145, -0.041836035, -0.23843306, -0.0025492774, -0.06863939, 0.20408852, -0.033467945, -0.053321257, 0.43656695) * conv2d_1_texOff(vec2(1, 1));
    return max(result, vec4(0.0));
}

//!DESC [ArtCNN_v0_C4F8] (Conv2D-1-ReLU)
//!HOOK LUMA
//!BIND conv2d_0
//!BIND conv2d_1
//!SAVE conv2d_1_1
//!WIDTH LUMA.w
//!HEIGHT LUMA.h
//!COMPONENTS 4
//!WHEN OUTPUT.w LUMA.w 1.200 * > OUTPUT.h LUMA.h 1.200 * > *

vec4 hook() {
    vec4 result = vec4(0.104608476, -0.03404368, -0.026610585, -0.084352);
    result += mat4(-0.00016093232, -0.22017275, -0.025449067, -0.14653213, -0.053054757, 0.05916693, -0.03899273, 0.08209014, 0.07213638, 0.25478873, 0.07004715, 0.41528916, 0.18396027, -0.62560576, -0.10777955, 0.13266207) * conv2d_0_texOff(vec2(-1, -1));
    result += mat4(0.085981, 0.21929987, -0.059096195, 0.24393113, 0.1515044, 1.0261772, -0.124490075, 0.7454991, -0.15230186, -0.34784046, -0.020191425, -0.77913535, -0.12728682, -0.9159833, -0.0918319, -0.7218383) * conv2d_0_texOff(vec2(0, -1));
    result += mat4(-0.118647784, -0.021653062, -0.011682823, 0.26168, -0.020881966, 0.111436576, 0.12908743, 0.15995009, 0.011425559, 0.0023545942, 0.033243343, 0.066679955, -0.106008224, 0.07832285, -0.015760534, 0.057193857) * conv2d_0_texOff(vec2(1, -1));
    result += mat4(0.18549138, -0.039105583, -0.067607224, -0.06346962, -0.3080763, -0.23652619, -0.15789641, -0.37295592, -0.21316406, 0.193699, -0.078045286, -0.27642363, 0.26573068, -0.10170773, -0.14146006, -0.18688181) * conv2d_0_texOff(vec2(-1, 0));
    result += mat4(0.2205491, -0.01799392, -0.21047042, 0.10516344, -0.21898673, -0.50126946, -0.19714099, -0.5908009, 0.58715594, 0.122784585, -0.1573563, 0.09121667, 0.7892442, 0.1323572, -0.9863354, 0.50170255) * conv2d_0_texOff(vec2(0, 0));
    result += mat4(0.08974298, 0.031387717, 0.17155534, -0.011814892, -0.048651982, -0.014657373, -0.26749408, 0.19620435, 0.01315331, -0.21326056, 0.4647811, -0.15991947, -0.28331736, 0.8529108, 1.6726098, -0.33477172) * conv2d_0_texOff(vec2(1, 0));
    result += mat4(0.021621859, -0.34165943, -0.0119922375, 0.03644278, 0.0013847761, 0.23028396, 0.24079734, 0.32097137, 0.15675384, 0.051093113, 0.08321446, 0.18208359, 0.18580298, 0.36725485, 0.11666348, 0.50412464) * conv2d_0_texOff(vec2(-1, 1));
    result += mat4(0.27827185, 0.13739832, -0.17046729, 0.07887352, 0.30401212, 0.27880388, 0.019184751, -0.2625135, -0.15675277, -0.25013646, -0.04121982, -0.16506661, 0.21504214, 0.9247656, 0.15055043, -0.09008282) * conv2d_0_texOff(vec2(0, 1));
    result += mat4(0.1849609, -0.09798534, 0.11537516, 0.13673139, -0.19613764, 0.31598943, 0.02436434, 0.047109026, -0.03256026, 0.27275023, 0.101042025, -0.12152309, -0.088444635, 0.11015872, 0.22258922, -0.27338636) * conv2d_0_texOff(vec2(1, 1));
    result += mat4(0.009521316, -0.5304454, -0.04443507, -0.2214578, -0.04384807, -0.04964598, 0.043927565, 0.09272274, -0.18446872, -0.17394717, -0.0028334237, -0.41886064, 0.03414886, -0.20907165, -0.010104916, -0.01663654) * conv2d_1_texOff(vec2(-1, -1));
    result += mat4(-0.23970824, -0.51226884, -0.11711166, -0.08687909, -0.07887249, 0.70659846, -0.366726, 0.6942612, -0.06068507, -0.45206833, -0.14780697, -0.032836497, -0.03737631, 0.29271206, -0.08094337, 0.3489622) * conv2d_1_texOff(vec2(0, -1));
    result += mat4(-0.070745245, 0.07187582, 0.12187289, -0.15631902, 0.07257499, 0.16445102, 0.2682347, 0.16176386, -0.00026306204, -0.12284536, 0.15474847, -0.15256755, -0.15675989, 0.0061218245, 0.16459347, 0.15321614) * conv2d_1_texOff(vec2(1, -1));
    result += mat4(-0.03097573, -1.0963107, 0.21226859, -1.6555037, 0.083519384, -0.6431419, -0.046565745, -1.4988765, 0.28421792, -0.49767148, 0.21166264, 0.05366827, -0.004515585, -0.14084329, -0.06988296, -0.5245812) * conv2d_1_texOff(vec2(-1, 0));
    result += mat4(0.64869684, 0.026636442, -1.3484586, 0.5806008, -0.26846784, 0.21965408, -0.2701864, 0.020748535, -0.18088004, -0.53761095, -0.4816878, -0.18190463, 0.14054608, 0.021890322, -0.13407595, -0.025777882) * conv2d_1_texOff(vec2(0, 0));
    result += mat4(-0.04968546, 0.124375, 0.13872436, -0.3225242, 0.2655964, 0.04470752, -0.43368593, 0.23830698, 0.22109227, -0.00040960134, -0.81077504, 0.0013654035, 0.19192806, 0.11076004, 0.121655315, -0.043157216) * conv2d_1_texOff(vec2(1, 0));
    result += mat4(0.09049576, 0.358871, -0.0026055279, 0.449156, -0.003499851, 0.55924094, -0.072938204, 0.4544296, -0.17089644, -0.18286581, 0.01075839, -0.4095739, -0.30056244, -0.1563285, -0.083808385, 0.06914069) * conv2d_1_texOff(vec2(-1, 1));
    result += mat4(0.10028083, 0.23622218, -0.10868977, 0.29856056, -0.15462793, -0.36750376, 0.425022, 0.01701753, -0.08386473, 0.5850137, -0.21710671, 0.261346, 0.08947286, 0.08481812, -0.10059924, -0.30319986) * conv2d_1_texOff(vec2(0, 1));
    result += mat4(-0.13704456, 0.1349165, 0.4078938, -0.07820015, 0.12521803, 0.22262356, -0.24325496, 0.07196198, 0.008915383, -0.6387784, -0.12974575, 0.0037424173, -0.0033856146, -0.03238735, 0.12632963, 0.08945348) * conv2d_1_texOff(vec2(1, 1));
    return max(result, vec4(0.0));
}

//!DESC [ArtCNN_v0_C4F8] (Conv2D-2-ReLU)
//!HOOK LUMA
//!BIND conv2d_1_0
//!BIND conv2d_1_1
//!SAVE conv2d_2_0
//!WIDTH LUMA.w
//!HEIGHT LUMA.h
//!COMPONENTS 4
//!WHEN OUTPUT.w LUMA.w 1.200 * > OUTPUT.h LUMA.h 1.200 * > *

vec4 hook() {
    vec4 result = vec4(-0.0013645191, -0.08733133, 0.0081777405, -0.013924736);
    result += mat4(0.21528067, 0.08507699, -0.045531895, 0.0045124814, -1.3144594, -0.022111312, 0.001613459, -0.041650567, -1.3724232, -0.027738083, 0.033714496, 0.01443309, -0.9693586, 0.06438713, -0.00033875916, -0.043517575) * conv2d_1_0_texOff(vec2(-1, -1));
    result += mat4(0.23942138, 0.11341275, 0.03349691, 0.33587915, -0.08633654, 0.056850243, 0.028422674, 0.32580537, -0.1241023, -0.9293494, 0.0035969608, -0.88704276, -0.21118994, 0.0025144839, -0.046137415, 0.10816496) * conv2d_1_0_texOff(vec2(0, -1));
    result += mat4(-0.055925936, 0.036582805, -0.045344163, -0.114731796, 0.020641744, 0.066502206, 8.07426e-05, -0.053619847, 0.045753047, -0.042906217, -0.020079197, -0.2757854, -0.33170155, -0.07618066, 0.018461352, -0.2101795) * conv2d_1_0_texOff(vec2(1, -1));
    result += mat4(0.5305215, 0.31118807, -0.04236783, -0.14974949, 0.05931877, 0.100892045, -0.07946467, 0.06675155, -0.038103875, 0.09444517, 0.040886432, 0.05659328, -0.10335664, 0.1396833, 0.075053096, 0.09443326) * conv2d_1_0_texOff(vec2(-1, 0));
    result += mat4(0.23652607, -0.008120447, 0.8334027, 0.5724583, 0.028951451, 0.070851244, 0.05399813, -0.23445597, -0.1266222, -1.4591428, 0.013210388, -0.015904682, 0.19913615, 0.4687852, -0.028622016, 0.21794373) * conv2d_1_0_texOff(vec2(0, 0));
    result += mat4(0.119521126, 0.07841314, -0.20395818, 0.050378565, -0.078247696, 0.06624193, -0.01545963, -0.075675115, 0.048992325, 0.0005857064, -0.018053757, 0.0095072, 0.02280291, 0.058627006, 0.01871711, -0.15661821) * conv2d_1_0_texOff(vec2(1, 0));
    result += mat4(-0.32687807, 0.29148898, 0.04934333, 0.012411462, 0.14094837, 0.13541172, -0.072166756, 0.07808528, 0.01780924, 0.047573265, 0.00035630405, 0.014720889, 0.058290284, 0.13901253, -0.005343546, 0.040650282) * conv2d_1_0_texOff(vec2(-1, 1));
    result += mat4(0.28010416, 0.53208745, 0.030682158, 0.27993694, -0.047260895, 0.0388285, 0.02398392, 0.039515678, -0.06127711, 0.022978283, -0.0006495904, 0.011743412, 0.08642327, -0.018773785, 0.0012471357, -0.021479256) * conv2d_1_0_texOff(vec2(0, 1));
    result += mat4(-0.095811136, 0.038210046, 0.043105014, -0.03177699, -0.02839673, 0.042397078, 0.0120386295, 0.07192807, 0.025544502, -0.0027379964, -0.022119004, 0.042942308, 0.038784027, -0.069737196, 0.01919935, 0.026088513) * conv2d_1_0_texOff(vec2(1, 1));
    result += mat4(-2.6747456, 0.08801512, 0.021844642, -0.0010856661, -2.303526, 0.041794218, 0.032464806, -0.015078963, -2.9108014, 0.05317451, 0.023285072, 0.008830479, -0.01072895, 0.02197735, -0.029480567, 0.05598392) * conv2d_1_1_texOff(vec2(-1, -1));
    result += mat4(0.00717385, -0.33650246, -0.021779677, -0.71271646, -0.045322474, -0.077504426, -0.07290783, 0.22668812, 0.048336025, 0.04264111, 0.026806956, -0.20321807, 0.16824645, 0.079107516, -0.021620503, -0.29319233) * conv2d_1_1_texOff(vec2(0, -1));
    result += mat4(-0.46424496, -0.09896634, -0.10903692, -0.21940936, -0.034070294, 0.039243083, 0.004689505, -0.018310774, 0.023893192, 0.024212303, 0.0034570226, 0.067539334, 0.12406684, -0.009154342, -0.035981018, -0.21495417) * conv2d_1_1_texOff(vec2(1, -1));
    result += mat4(-0.23654777, -0.60614496, 0.047342952, 0.044291858, 0.1367165, 0.080666035, 0.012450321, -0.09097365, -0.5818905, -1.2676544, -0.02374373, -0.30699822, -0.040913288, -0.05683267, -0.07693618, 0.17064095) * conv2d_1_1_texOff(vec2(-1, 0));
    result += mat4(0.4496289, -0.46478692, 0.38074052, -0.109439045, 0.09762459, 0.510288, -0.02240985, 0.19107327, -0.0036773144, -1.2682208, -0.035446264, -0.5797988, 0.3619201, 1.7361448, 0.07229648, 0.68376017) * conv2d_1_1_texOff(vec2(0, 0));
    result += mat4(-0.09200761, 0.33348137, 0.077369176, 0.2577719, -0.109493814, 0.058378417, 0.0080868155, 0.3652352, -0.0051009445, 0.014435956, 0.025479488, 0.0084413495, -0.18263258, -0.026158959, 0.015884211, -0.06328915) * conv2d_1_1_texOff(vec2(1, 0));
    result += mat4(0.04274611, -0.30126157, -0.100055486, 0.046033323, 0.03122779, 0.034347415, 0.041846417, -0.036963463, -0.057264753, -0.12993912, 0.06906583, 0.010067457, -0.11136417, -0.11823505, -0.001541483, -0.008324551) * conv2d_1_1_texOff(vec2(-1, 1));
    result += mat4(0.17168541, -0.03140392, 0.0003286516, -0.39534813, 0.07184437, 0.22937363, -0.019041056, -0.04956057, 0.016085867, 0.024903385, 0.082859665, -0.0010043104, -0.028762713, 0.041885722, -0.07298718, 0.23975788) * conv2d_1_1_texOff(vec2(0, 1));
    result += mat4(-0.02307273, -0.08423408, 0.045494784, 0.07448038, 0.06713188, -0.11742586, -0.004705238, 0.028987305, -0.016574118, 0.027963907, 0.00457532, 0.034310218, -0.010669869, -0.024890035, -0.021691937, 0.01571581) * conv2d_1_1_texOff(vec2(1, 1));
    return max(result, vec4(0.0));
}

//!DESC [ArtCNN_v0_C4F8] (Conv2D-2-ReLU)
//!HOOK LUMA
//!BIND conv2d_1_0
//!BIND conv2d_1_1
//!SAVE conv2d_2_1
//!WIDTH LUMA.w
//!HEIGHT LUMA.h
//!COMPONENTS 4
//!WHEN OUTPUT.w LUMA.w 1.200 * > OUTPUT.h LUMA.h 1.200 * > *

vec4 hook() {
    vec4 result = vec4(0.0122822635, -0.16543204, -0.009754946, -0.17098637);
    result += mat4(-0.3616736, -0.18722703, -0.17879444, -0.13687818, -0.30699643, -0.05049695, -0.15115602, 0.05507907, -0.14834665, 0.097792245, -0.14101957, -0.12796184, 0.11756518, 0.06296548, -0.01209837, 0.10363924) * conv2d_1_0_texOff(vec2(-1, -1));
    result += mat4(-0.4090808, -0.043238193, -0.014898799, 0.020154687, -0.36445978, -0.056226093, -0.13705876, 0.04150292, 0.19889057, 0.054055966, 0.17702247, -0.6818415, 0.11308842, 0.1626464, 0.033330962, 0.11526339) * conv2d_1_0_texOff(vec2(0, -1));
    result += mat4(-0.058446158, 0.18761158, -0.034716576, 0.054664325, -0.13769557, 0.032223407, -0.06515845, 0.097580165, 0.12947397, -0.65453005, -0.20698515, -0.060933158, -0.04195998, 0.32925737, 0.044622928, 0.1272173) * conv2d_1_0_texOff(vec2(1, -1));
    result += mat4(0.4202724, -0.007105386, -0.26676077, 0.20106167, -0.39645335, -0.08928835, -0.30890226, 0.2276941, -0.1330883, 0.024361199, -0.24159066, -0.20401412, -0.10834261, 0.049856555, 0.12259966, 0.11576853) * conv2d_1_0_texOff(vec2(-1, 0));
    result += mat4(0.307089, 0.12805897, 0.31037343, -0.61934644, -0.7043441, 0.072033875, -0.06929099, 0.08731216, 0.20044671, -0.48006815, 0.16803183, -0.5269092, -0.3913816, 0.032052275, -0.07968981, 0.95300186) * conv2d_1_0_texOff(vec2(0, 0));
    result += mat4(-0.09637913, -0.069405206, 0.016487658, -0.12628213, -0.33373967, 0.052627597, -0.0067636278, -0.027168367, -0.1366811, -0.33855334, -0.12835497, -0.061294608, 0.1333729, 0.8083498, -0.007578951, 0.25420952) * conv2d_1_0_texOff(vec2(1, 0));
    result += mat4(-0.15947312, -0.12826118, -0.49856725, 0.019068746, -0.3396389, 0.07029903, 0.017898928, 0.06226445, -0.055086207, -0.014237462, -0.031169636, 0.040552206, -0.0057299864, 0.12616076, -0.07394855, 0.024050053) * conv2d_1_0_texOff(vec2(-1, 1));
    result += mat4(-0.5365832, -0.17205046, -0.14567436, 0.7171654, -0.32957086, -0.07514046, 0.017984081, -0.0037607888, -0.027414633, -0.0017819613, 0.028659608, 0.040974554, 0.09541667, -0.16423106, 0.073735446, -0.061193395) * conv2d_1_0_texOff(vec2(0, 1));
    result += mat4(0.21154319, 0.39245906, 0.09389091, -0.16050372, -0.10827727, 0.03465206, 0.060709555, 0.033529654, -0.078031875, -0.016721774, 0.008778402, -0.016556963, 0.072432905, 0.120655484, 0.094693914, 0.057917867) * conv2d_1_0_texOff(vec2(1, 1));
    result += mat4(0.1959906, 0.2527966, -0.0438788, 0.17060393, 0.050824944, 0.008505251, -0.08192113, 0.16209957, -0.26162246, 0.11927203, -0.030211262, -0.0017260185, 0.0062707625, 0.063098915, 0.17721982, -0.10048726) * conv2d_1_1_texOff(vec2(-1, -1));
    result += mat4(0.7406357, 0.06698628, 0.4343527, -0.111007184, 0.2789501, 0.11310139, 0.018621238, 0.07035863, -0.08955826, 0.09315889, -0.0035348285, 0.12153681, 0.1521604, -0.1857246, 0.16801433, -0.065976046) * conv2d_1_1_texOff(vec2(0, -1));
    result += mat4(0.044851884, -0.46891624, -0.19235158, 0.08668705, 0.12080838, 0.052520853, 0.034435716, 0.023675976, 0.011237631, -0.10924931, -0.005599633, 0.0019506335, 0.09018604, 0.08961068, 0.01876103, -0.087684974) * conv2d_1_1_texOff(vec2(1, -1));
    result += mat4(-0.02956456, -0.20411405, 0.6224964, -0.6357352, 0.0075451685, -0.074551314, -0.02975841, 0.23823394, 0.034372766, 0.2377151, 0.38112465, -0.63517433, 0.3111402, 0.08294638, 0.36161956, -0.32682818) * conv2d_1_1_texOff(vec2(-1, 0));
    result += mat4(0.082872756, 0.17153965, -0.43354163, -0.11477765, 0.15850818, 0.3533445, -0.03624465, 0.27521452, 0.07356635, -1.4867896, 0.019821031, -0.16271186, 0.0092758555, -0.2420362, -0.15562396, 0.4676692) * conv2d_1_1_texOff(vec2(0, 0));
    result += mat4(-0.37345368, -0.3832931, -0.12150446, 0.2237628, 0.21036741, 0.50599635, 0.13633934, 0.046954192, -0.037360705, -0.26885468, -0.022834698, 0.034844782, 0.119277775, 0.94986105, 0.20929205, 0.029598609) * conv2d_1_1_texOff(vec2(1, 0));
    result += mat4(-0.012888726, 0.13590989, 0.40852505, 0.35331973, 0.14470735, -0.042941842, -0.06619441, 0.074974604, 0.094335295, 0.17667557, 0.02995767, 0.16115813, 0.25945866, 0.08374327, 0.25483516, -0.14723238) * conv2d_1_1_texOff(vec2(-1, 1));
    result += mat4(-0.22553334, 0.24171264, -0.011302451, 0.31484044, 0.3721383, 0.026838863, -0.08315315, 0.04189298, -0.19541962, 0.20693377, 0.048965592, 0.10845032, 0.16867152, -0.22713332, 0.11242361, -0.1570467) * conv2d_1_1_texOff(vec2(0, 1));
    result += mat4(0.31483924, 0.19250597, 0.069622844, -0.15961637, 0.47786537, -0.21268857, 0.023675153, 0.0047235335, -0.04606106, -0.00091738097, -0.005578502, 0.0017155837, 0.13961738, -0.33146754, 0.09978021, 0.050373722) * conv2d_1_1_texOff(vec2(1, 1));
    return max(result, vec4(0.0));
}

//!DESC [ArtCNN_v0_C4F8] (Conv2D-3-ReLU)
//!HOOK LUMA
//!BIND conv2d_2_0
//!BIND conv2d_2_1
//!SAVE conv2d_3_0
//!WIDTH LUMA.w
//!HEIGHT LUMA.h
//!COMPONENTS 4
//!WHEN OUTPUT.w LUMA.w 1.200 * > OUTPUT.h LUMA.h 1.200 * > *

vec4 hook() {
    vec4 result = vec4(-0.0013164828, -0.0009706574, 0.06539383, -0.017606921);
    result += mat4(-0.028676143, 0.008270309, 0.008691509, 0.02996927, 0.38220027, -0.106199294, 0.2044531, -0.07081475, 0.147807, 0.039588872, 0.07637329, 0.0017420274, 0.072965406, -0.01530238, 0.04484627, 0.02160041) * conv2d_2_0_texOff(vec2(-1, -1));
    result += mat4(0.025332341, 0.06489532, -0.14968106, 0.02752181, -0.2895781, -0.18583314, 0.03243834, -0.19392261, -0.46401072, -0.02136837, -0.0916118, -0.12223495, -0.2192875, -0.08180379, -0.07395544, -0.039412264) * conv2d_2_0_texOff(vec2(0, -1));
    result += mat4(0.1411057, 0.063657455, 0.0637658, -0.0266054, -0.10419734, -0.14819665, 0.1226204, -0.14764526, 0.06949523, -0.012792716, -0.0011735522, 0.038429487, -0.022033013, -0.0462242, 0.10006501, 0.0406403) * conv2d_2_0_texOff(vec2(1, -1));
    result += mat4(0.16447617, 0.05995363, 0.043224815, 0.0039767586, -0.54045606, 0.002599096, 0.09333373, -0.008744292, -0.4160479, -0.008592733, -0.08211273, 0.05135499, 0.10453785, 0.006639998, 0.1036268, 0.012814446) * conv2d_2_0_texOff(vec2(-1, 0));
    result += mat4(-0.22297437, -0.106680214, 0.2992626, -0.11403763, -0.58559495, 0.617022, -0.98647255, 0.3180352, 0.60145146, 0.620676, 0.18910153, 0.638219, -0.28555846, 0.07133417, -0.53300756, -0.08870821) * conv2d_2_0_texOff(vec2(0, 0));
    result += mat4(-0.016906915, 0.13746911, -0.034566693, -0.38620636, 0.12380598, -0.1720426, -0.4178142, 0.020725902, 0.013176709, -0.14037558, -0.008213444, -0.040066328, -0.017165814, -0.17383762, -0.0010551751, -0.007328268) * conv2d_2_0_texOff(vec2(1, 0));
    result += mat4(-0.10433755, -0.044675317, -0.020693678, -0.058296006, -0.057661086, 0.005475526, 0.013798625, 0.0024450738, 0.019674588, -0.2935516, -0.2714786, 0.059019584, -0.031018008, -0.079702854, 0.037094373, 0.058086682) * conv2d_2_0_texOff(vec2(-1, 1));
    result += mat4(-0.08095701, -0.3410484, -0.40689728, -0.05189355, 0.09448675, 0.2623282, 0.072050594, 0.108622216, 0.07735011, -0.39504114, 0.28509197, -0.00443055, -0.044423442, 0.1458175, -0.06663615, 0.124677606) * conv2d_2_0_texOff(vec2(0, 1));
    result += mat4(-1.3939565, -2.3867862, -0.25260192, 0.37234706, 0.019356435, 0.45593956, 0.021232614, 0.03388399, -0.0692373, 0.19987364, -0.02072771, 0.008636708, 0.04730951, -0.06654793, 0.12807268, 0.03802979) * conv2d_2_0_texOff(vec2(1, 1));
    result += mat4(-0.0143719455, 0.023974339, 0.00554443, 0.024487298, -0.12844452, 0.008840505, -0.035514478, 0.0019886883, 0.04701246, -0.023779674, -0.0073735886, -0.014084555, 0.002897339, 0.014553735, 0.05408717, -0.034782313) * conv2d_2_1_texOff(vec2(-1, -1));
    result += mat4(0.28440532, 0.30335975, -0.052541584, 0.2012148, 0.059337087, 0.12505049, 0.07433627, 0.096149065, -0.030113893, -0.024631828, 0.013514958, -0.055385537, 0.3612943, 0.157146, 0.0008003967, -0.0006031032) * conv2d_2_1_texOff(vec2(0, -1));
    result += mat4(0.25499246, 0.002766679, 0.069207095, 0.048638858, 0.104362056, -0.010349078, 0.09167177, 0.036114883, -0.091590084, -0.069779634, -0.10585751, -0.0651849, 0.01734362, 0.058288552, 0.010683129, 0.017758643) * conv2d_2_1_texOff(vec2(1, -1));
    result += mat4(0.20627865, 0.2501356, -0.17524587, 0.13966683, 0.115877286, 0.1052753, -0.039999362, 0.014629401, -0.15994732, -0.058417954, 0.02915469, -0.034534052, 0.04532139, 0.098484285, 0.13881461, -0.007995238) * conv2d_2_1_texOff(vec2(-1, 0));
    result += mat4(0.29508966, -0.020683533, 0.23773548, 0.013499094, 0.1406545, 0.30473527, 0.24697916, 0.0029692347, 0.011940582, -0.44917327, 0.25951502, -0.090556495, -0.44787022, -0.16001165, -0.030255575, 0.0053979536) * conv2d_2_1_texOff(vec2(0, 0));
    result += mat4(0.14076862, 0.11886907, -0.18011862, -0.007226805, 0.065328784, 0.12893942, 0.037226994, -0.03313116, -0.13747072, -0.0062181056, 0.031740148, 0.056641474, -0.04369426, -0.2301153, 0.07191753, -0.006736945) * conv2d_2_1_texOff(vec2(1, 0));
    result += mat4(0.1283845, 0.15486284, 0.15395804, 0.039119992, 0.040585954, -0.047849126, 0.04070287, -0.01080719, 0.040542897, -0.08972342, -0.10822428, 0.020627748, -0.024230791, 0.1483911, 0.07267291, -0.046918843) * conv2d_2_1_texOff(vec2(-1, 1));
    result += mat4(0.10201423, -0.071220234, 0.14377707, 0.065628655, 0.011890751, -0.1290685, 0.029336974, 0.00062522676, -0.08714325, 0.31915084, 0.1888785, -0.02471566, -0.14127377, -0.16792308, -0.32812792, 0.017402554) * conv2d_2_1_texOff(vec2(0, 1));
    result += mat4(0.0035780263, 0.20302294, 0.02209393, 0.0068336767, -0.050494924, 0.20887941, 0.068420395, -0.030621195, 0.0021895724, -0.099590085, 0.09427933, 0.0029526707, 0.12863463, 0.09677713, -0.12135036, 0.01643367) * conv2d_2_1_texOff(vec2(1, 1));
    return max(result, vec4(0.0));
}

//!DESC [ArtCNN_v0_C4F8] (Conv2D-3-ReLU)
//!HOOK LUMA
//!BIND conv2d_2_0
//!BIND conv2d_2_1
//!SAVE conv2d_3_1
//!WIDTH LUMA.w
//!HEIGHT LUMA.h
//!COMPONENTS 4
//!WHEN OUTPUT.w LUMA.w 1.200 * > OUTPUT.h LUMA.h 1.200 * > *

vec4 hook() {
    vec4 result = vec4(0.0012356759, 0.0020020225, -0.0030160057, -0.012030628);
    result += mat4(-0.0057141283, 0.020322464, 0.027741676, 0.09153876, -0.16867483, -0.10000439, -0.021396566, -0.06329335, 0.032402437, 0.00510362, -0.09103852, 0.011728295, 0.053049214, -0.007405392, 0.10154879, -0.007155449) * conv2d_2_0_texOff(vec2(-1, -1));
    result += mat4(0.033195175, -0.015051605, 0.016830578, -0.021913292, -0.0072540464, 0.2017328, 0.00093735335, 0.22546771, -0.0048649195, 0.18524693, -0.051905055, -0.038179874, -0.031817634, -0.01036779, 0.11141824, -0.023094319) * conv2d_2_0_texOff(vec2(0, -1));
    result += mat4(-0.055362646, 0.1277735, -0.28621963, 0.05709046, -0.020114046, -0.07546784, -0.059882, -0.0632474, 0.046789676, -0.018919097, -0.026532514, 0.018214192, 0.021739028, -0.18589066, 0.16649139, -0.12332604) * conv2d_2_0_texOff(vec2(1, -1));
    result += mat4(-0.082321614, 0.0081294365, -0.20085897, 0.027446024, -0.09763105, 0.0017100271, 0.14151715, -0.14816467, -0.042301986, -0.08991985, 0.02419818, -0.18459769, 0.30700505, 0.06513298, 0.33088797, 0.049218547) * conv2d_2_0_texOff(vec2(-1, 0));
    result += mat4(-0.113249876, -0.16035213, -0.26107568, -0.20809048, 0.14496607, 0.6027618, 0.1815615, 0.41136307, 0.57847536, -0.044819746, 0.6244732, 0.5630544, 0.13383058, 0.50559783, 0.28575364, 0.41964543) * conv2d_2_0_texOff(vec2(0, 0));
    result += mat4(0.048571654, 0.87991697, -0.33777648, 0.91392016, -0.058886983, 0.25027865, 0.287846, 0.11212415, -0.21368606, 0.09047081, 0.035036344, 0.07907804, -0.21909344, 0.017984636, 0.26593575, -0.02199275) * conv2d_2_0_texOff(vec2(1, 0));
    result += mat4(0.16855414, -0.0406702, 0.16862293, -0.08196091, -0.28418672, -0.118373215, -0.15239789, -0.08115005, -0.5979257, 0.074132785, 0.15830241, 0.023034392, 0.24679223, 0.0862773, -0.049210876, 0.06627765) * conv2d_2_0_texOff(vec2(-1, 1));
    result += mat4(-0.661249, 0.09273977, 0.39295337, -0.108339965, -1.4013095, -0.06832412, -0.53446645, -0.10112945, -0.029348765, -0.22179556, -0.6312279, 0.0799763, -1.0599499, 0.20115486, -0.20877573, 0.1227626) * conv2d_2_0_texOff(vec2(0, 1));
    result += mat4(-1.2748712, -0.9426133, -0.9963089, -0.23165596, 0.2908067, -0.11407014, -0.4284219, -0.10207429, 0.258102, -0.009158225, -0.052710034, -0.106480345, 0.22369395, -0.05198595, -0.049198538, 0.018767677) * conv2d_2_0_texOff(vec2(1, 1));
    result += mat4(-0.09331481, -0.030645553, 0.051951542, 0.013984588, 0.03911451, -0.0024986702, 0.017911226, -0.0010536894, 0.02097717, -0.026126383, -0.0479423, -0.0046637948, 0.07013992, -0.008094323, 0.01378611, 0.012902228) * conv2d_2_1_texOff(vec2(-1, -1));
    result += mat4(0.20372495, 0.03006059, 0.18903488, -0.007978093, 0.0916478, -0.0053437743, 0.11244309, 0.06055159, 0.025955558, 0.06447511, 0.059783358, 0.06442097, 0.24019207, 0.15242141, 0.3575834, -0.10071019) * conv2d_2_1_texOff(vec2(0, -1));
    result += mat4(-0.13149816, -0.012290718, 0.08429153, 0.08887202, -0.018341098, -0.04585675, -0.007382734, 0.049838442, -0.044084545, 0.086959355, -0.01684167, 0.13053569, 0.15184586, 0.049578965, 0.11391535, -0.013961873) * conv2d_2_1_texOff(vec2(1, -1));
    result += mat4(0.0006487823, 0.23877099, 0.05986909, 0.22207779, 0.08145557, 0.09067222, -0.014486207, 0.061247766, 0.018672153, -0.016146861, -0.041339166, -0.12233893, -0.046359334, 0.03733021, 0.080377184, 0.026677452) * conv2d_2_1_texOff(vec2(-1, 0));
    result += mat4(-0.6272177, 0.16604373, -0.27542043, 0.1457137, 0.11122943, 0.4627691, -0.21435831, 0.13016026, -0.32495743, -0.28996384, -0.20602797, 0.21540059, -0.7919121, 0.5034161, -0.7491747, 0.017791897) * conv2d_2_1_texOff(vec2(0, 0));
    result += mat4(-0.26888663, 0.25393113, 0.03118633, 0.15215237, 0.066734694, 0.14453453, -0.112823784, 0.10721939, -0.085221626, -0.22448269, 0.08532612, -0.048208464, -0.08542241, -0.23756558, -0.2583295, -0.19773631) * conv2d_2_1_texOff(vec2(1, 0));
    result += mat4(-0.21548425, 0.041124113, 0.095544435, 0.079762325, -0.08449364, -0.051632024, -0.19937749, -0.012920319, -0.08348553, 0.009165411, 0.04029164, 0.008652495, 0.25776535, -0.14241132, -0.2545877, -0.06907598) * conv2d_2_1_texOff(vec2(-1, 1));
    result += mat4(-0.31107283, 0.14485656, 0.27154523, 0.034053735, -0.28710768, -0.056017153, 0.087787375, -0.124616556, 0.86319685, 0.053331286, -0.06256463, 0.041643042, -0.98233885, 0.20539302, -0.562342, 0.04531459) * conv2d_2_1_texOff(vec2(0, 1));
    result += mat4(0.053003766, 0.14691162, -0.07640542, 0.029198887, 0.16235782, 0.070786454, -0.11227677, 0.0009614598, 0.2570346, -0.20980929, 0.021334218, -0.034148872, -0.10613122, 0.10835524, -0.20208499, 0.025500817) * conv2d_2_1_texOff(vec2(1, 1));
    return max(result, vec4(0.0));
}

//!DESC [ArtCNN_v0_C4F8] (Conv2D-4-ReLU)
//!HOOK LUMA
//!BIND conv2d_3_0
//!BIND conv2d_3_1
//!SAVE conv2d_4_0
//!WIDTH LUMA.w
//!HEIGHT LUMA.h
//!COMPONENTS 4
//!WHEN OUTPUT.w LUMA.w 1.200 * > OUTPUT.h LUMA.h 1.200 * > *

vec4 hook() {
    vec4 result = vec4(-0.0046946155, -0.008984288, -0.0061580325, 0.010688645);
    result += mat4(-0.05492532, -0.02296518, -0.07019922, -0.032392487, 0.183704, 0.011444704, 0.49723405, -0.123388216, -0.1438219, -0.00047878988, 0.00084318797, -0.1045525, -0.13165331, 0.030333215, -0.23063564, 0.2010419) * conv2d_3_0_texOff(vec2(-1, -1));
    result += mat4(0.04842158, 0.019633465, -0.028770538, -0.002048364, 0.2508688, 0.002266122, -0.0141631635, -0.045298737, -0.20373072, -0.02719723, -0.057945132, -0.0017707488, -0.6115542, -0.03814163, 0.04984518, -0.032995157) * conv2d_3_0_texOff(vec2(0, -1));
    result += mat4(-0.0107066985, -0.0066880486, -0.033726294, 0.04619603, 0.09278293, -0.008523164, -0.030885702, 0.053710327, -0.19256556, -0.012389585, -0.0015771225, 0.024233757, -0.15697072, 0.016110146, 0.012838365, 0.015726104) * conv2d_3_0_texOff(vec2(1, -1));
    result += mat4(0.1369037, -0.0271251, 0.15698226, 0.07356449, 0.26740628, 0.04431967, 0.70057046, 0.33882517, 0.048425898, -0.00844761, -0.05292798, 0.08717838, 0.19800404, -0.04689076, 0.16498318, -0.39895904) * conv2d_3_0_texOff(vec2(-1, 0));
    result += mat4(-0.13095886, 0.012229711, 0.051734626, -0.47480696, 0.18275306, -0.15350671, -0.041008953, 0.25048342, 0.21081077, -0.05932625, 0.072722614, -0.22433512, 0.9168604, 0.24490716, 0.25302157, -0.36104) * conv2d_3_0_texOff(vec2(0, 0));
    result += mat4(-0.12622331, 0.041668333, -0.0072889035, 0.020071816, 0.18307655, 0.102682136, -0.018900717, 0.034983438, -0.004490343, 0.0795212, -0.053283326, -0.056315925, 0.020955231, -0.22668582, 0.015286527, 0.06404668) * conv2d_3_0_texOff(vec2(1, 0));
    result += mat4(-0.105862156, -0.08307069, -2.205285, 0.09210699, -0.14807889, 0.058548942, -3.050306, -0.016169013, 0.09011087, -0.0083328225, -0.75667804, -0.07713353, 0.071135946, 0.03389016, -5.0187936, 0.31378794) * conv2d_3_0_texOff(vec2(-1, 1));
    result += mat4(0.22468175, 0.049721524, -0.12301319, 0.42066345, -0.15782334, 0.060242515, -0.044489104, 0.0193454, 0.06356887, 0.028344318, 0.028426507, 0.10241374, -0.06200084, 0.19675766, 0.3039523, 0.5414166) * conv2d_3_0_texOff(vec2(0, 1));
    result += mat4(0.024332155, 0.09076808, 0.052090224, 0.15367438, -0.029559324, -0.02965849, 0.016294751, 0.046660256, 0.1396583, 0.11919648, -0.045684487, 0.015923377, 0.20569853, -0.42063895, -0.018909175, 0.016689967) * conv2d_3_0_texOff(vec2(1, 1));
    result += mat4(0.11327433, -0.041647006, -0.23386997, 0.17511274, -0.15657724, 0.018011807, -0.3867638, 0.013161458, 0.41746232, -0.005606294, 0.20770513, 0.11595229, 0.031303268, -0.036819674, 0.10603023, 0.010226422) * conv2d_3_1_texOff(vec2(-1, -1));
    result += mat4(0.53271693, 0.051485907, -0.041352317, 0.04813393, -0.2737631, -0.002170838, -0.093740895, 0.22825871, 0.464945, -0.008490834, 0.026996754, 0.4851664, 0.016568704, 0.02003626, 0.09516241, -0.13405132) * conv2d_3_1_texOff(vec2(0, -1));
    result += mat4(-0.010166112, 0.020891834, 0.045312095, -0.11724054, -0.20860635, -0.0023606403, 0.03443431, -0.05835759, 0.29974225, -0.0478254, -0.026176335, 0.005769522, 0.13510838, 0.006319219, -0.015448168, 0.014215701) * conv2d_3_1_texOff(vec2(1, -1));
    result += mat4(-0.12348236, -0.040926803, -0.015914634, -0.16519248, -0.13848688, 0.0061439006, -0.77632767, 0.115862735, -0.26727492, 0.04708124, -0.57909906, 0.19056001, -0.14702502, -0.02501807, -0.36440194, -0.19210763) * conv2d_3_1_texOff(vec2(-1, 0));
    result += mat4(-0.27409002, 0.12042506, 0.008161873, -0.08140315, -0.33715326, 0.06411729, 0.012448772, -0.7204144, -0.5101867, -0.13261901, 0.09504204, -0.10118897, 0.5021126, 0.008542607, 0.15257286, 0.46243575) * conv2d_3_1_texOff(vec2(0, 0));
    result += mat4(0.015273115, -0.02219805, 0.016520629, -0.05311192, 0.016438166, -0.21279415, 0.0057679857, -0.051796075, 0.11921384, -0.02310332, -0.02151007, 0.12771606, -0.04467656, 0.12428512, -0.025707675, 0.03456888) * conv2d_3_1_texOff(vec2(1, 0));
    result += mat4(0.027880719, -0.0255357, -0.5855232, -0.022076173, 0.044461824, 0.05634517, -0.43216696, -0.37162304, 0.1094747, -0.029842932, -1.0699714, 0.14016326, -0.1034131, -0.10784366, 0.026363852, 0.023483591) * conv2d_3_1_texOff(vec2(-1, 1));
    result += mat4(0.032225605, -0.016533745, -0.0023698518, -0.009206957, 0.3921266, -0.20878232, -0.046736717, 0.24011293, 0.10289359, 0.0016174124, 0.0024087848, 0.024970768, -0.9018473, 0.23589791, 0.015663039, -0.6314645) * conv2d_3_1_texOff(vec2(0, 1));
    result += mat4(-0.02087543, -0.0055531156, -0.010409831, 0.029835755, 0.06337658, -0.029577533, -0.017963411, 0.056209765, 0.010434053, -0.014680096, 0.0020844443, 0.049643364, -0.21707074, 0.010887252, -0.00040787217, -0.17965157) * conv2d_3_1_texOff(vec2(1, 1));
    return max(result, vec4(0.0));
}

//!DESC [ArtCNN_v0_C4F8] (Conv2D-4-ReLU)
//!HOOK LUMA
//!BIND conv2d_3_0
//!BIND conv2d_3_1
//!SAVE conv2d_4_1
//!WIDTH LUMA.w
//!HEIGHT LUMA.h
//!COMPONENTS 4
//!WHEN OUTPUT.w LUMA.w 1.200 * > OUTPUT.h LUMA.h 1.200 * > *

vec4 hook() {
    vec4 result = vec4(-0.022521805, -0.018618092, -0.04050755, -0.08600292);
    result += mat4(-0.038996853, -0.0053659226, -0.056033503, -0.024865868, 0.050931096, -0.020690655, -0.04956622, 0.038055163, 0.023258993, -0.016271329, 0.11970435, 0.032359745, -0.45451134, 0.03230835, 0.1973512, -0.08059797) * conv2d_3_0_texOff(vec2(-1, -1));
    result += mat4(0.04541961, 0.011351593, 0.038318735, -0.16154279, 0.047219254, -0.054797858, -0.088867806, 0.21165527, 0.036530294, -0.041949432, 0.20494393, 0.093896836, -0.15293527, 0.07162552, -0.28896767, -0.104737304) * conv2d_3_0_texOff(vec2(0, -1));
    result += mat4(0.019102301, -0.01155825, -0.03552055, -0.00048867613, 0.074507505, 0.0054842676, 0.19104297, -0.09791583, 0.0061084894, -0.011283143, -0.05499041, 0.10884869, -0.060583618, -0.019791372, -0.0315422, 0.14971313) * conv2d_3_0_texOff(vec2(1, -1));
    result += mat4(0.011857857, -0.030415135, -0.17667054, -0.010670688, -0.034476332, 0.082109004, 0.086816445, -0.20677647, 0.015463731, 0.055678286, 0.27806494, -0.11307762, 0.09781666, -0.14061545, 0.3530714, 0.34385908) * conv2d_3_0_texOff(vec2(-1, 0));
    result += mat4(-0.018005993, -0.07214715, 0.77687734, -0.33677563, -0.05458553, 0.41697562, -0.20840344, 0.7058749, -0.006235464, 0.019387579, -0.13610226, 1.0008451, -0.12645993, -0.26963276, -0.9688004, -0.54960996) * conv2d_3_0_texOff(vec2(0, 0));
    result += mat4(-0.011215008, -0.080351055, -0.3517557, 0.165116, 0.013618019, 0.10105585, 0.030471353, -0.1622442, 0.024836848, -0.021233749, 0.19240981, -0.08047745, -0.022806682, 0.022926902, 0.312743, 0.03488167) * conv2d_3_0_texOff(vec2(1, 0));
    result += mat4(0.0030293409, 0.030911008, -0.049134992, 0.13297972, 0.005871138, -0.016979171, 0.018779606, 0.08293454, -0.024419453, 0.018609617, -0.022378298, 0.060124297, -0.0023053116, 0.14022698, -0.030377008, -0.316619) * conv2d_3_0_texOff(vec2(-1, 1));
    result += mat4(0.031347074, 0.25551143, -0.026962651, -0.3603805, 0.010127428, -0.3348222, -0.0067818537, -0.1017754, -0.018587263, 0.1600713, 0.060847428, 0.32132408, -0.035911065, 0.543303, -0.048636183, 0.5927229) * conv2d_3_0_texOff(vec2(0, 1));
    result += mat4(0.009353838, 0.2925009, -0.012163175, 0.1504187, 0.031934973, -0.026907094, 0.02876204, 0.10956928, -0.031893663, 0.08354429, -0.065511584, -0.19836855, 0.0007187991, 0.11382074, 0.10303618, -0.34802198) * conv2d_3_0_texOff(vec2(1, 1));
    result += mat4(-0.06270809, 0.039387356, -0.03125404, -0.017439658, 0.039846078, 0.030961175, 0.18430021, -0.023158379, -0.0045869583, 0.062673435, -0.05676001, -0.2197878, 0.15102474, -0.03500557, -0.2183615, 0.05197391) * conv2d_3_1_texOff(vec2(-1, -1));
    result += mat4(-0.07877944, 0.07260447, 0.2830857, -0.11310631, -0.25064638, 0.021972954, -0.50510466, -0.16985862, -0.13571407, -0.20864186, -0.18251644, 0.2885428, 0.32953677, 0.014041981, 0.49870658, -0.008528913) * conv2d_3_1_texOff(vec2(0, -1));
    result += mat4(-0.02914955, -0.004906262, -0.19433054, -0.061610222, -0.0518601, -0.041032217, -0.004734812, 0.02929192, -0.036629092, 0.06625869, 0.13256441, -0.16182236, 0.039986104, 0.0430246, -0.069116846, 0.07712442) * conv2d_3_1_texOff(vec2(1, -1));
    result += mat4(0.014827129, -0.051705047, -0.07711892, 0.04394488, 0.054162946, -0.050700374, -0.07029627, -0.3809818, 0.0006054391, 0.07287072, -0.06263298, -0.033384934, -0.038809344, 0.037770495, 0.0062632146, 0.19728778) * conv2d_3_1_texOff(vec2(-1, 0));
    result += mat4(0.032230258, -0.19482277, 0.13582912, -0.36564788, 0.049677294, -0.33032662, -0.45387, 0.37429237, 0.016518539, 0.2748798, 0.01731355, -0.21871063, 0.05875268, 0.23593831, 0.25174102, -0.3112113) * conv2d_3_1_texOff(vec2(0, 0));
    result += mat4(0.0012171377, 0.0019169803, -0.069700256, 0.26533526, 0.052042753, -0.0586819, 0.11286738, -0.1271822, 0.021663006, 0.058239013, 0.051563147, -0.023691433, -0.04789267, 0.010991155, -0.019554947, 0.17845386) * conv2d_3_1_texOff(vec2(1, 0));
    result += mat4(0.009747024, -0.034779683, -0.021431385, -0.08490293, 0.008771756, -0.096830614, 0.017554352, -0.08936517, -0.018078834, 0.11897101, 0.011723998, -0.010476181, -0.035917856, -0.056546643, -0.15952198, 0.20183243) * conv2d_3_1_texOff(vec2(-1, 1));
    result += mat4(0.012031991, 0.18933046, -0.0281278, 0.03567477, -0.012408868, 0.14341691, -0.011359674, -0.0025538267, -0.03382149, 0.18853578, -0.047652923, -0.033661872, 0.046664894, -0.7885486, 0.30258843, -0.49329072) * conv2d_3_1_texOff(vec2(0, 1));
    result += mat4(0.000133578, -0.0066604833, -0.009982778, -0.003641398, -0.0029296747, 0.0061023883, 0.03243904, -0.0953429, 0.02307154, 0.0732977, 0.0045665894, -0.0013422616, -0.032354444, -0.272833, -0.1956574, 0.2236906) * conv2d_3_1_texOff(vec2(1, 1));
    return max(result, vec4(0.0));
}

//!DESC [ArtCNN_v0_C4F8] (Conv2D-5)
//!HOOK LUMA
//!BIND conv2d_4_0
//!BIND conv2d_4_1
//!SAVE conv2d_5_0
//!WIDTH LUMA.w
//!HEIGHT LUMA.h
//!COMPONENTS 4
//!WHEN OUTPUT.w LUMA.w 1.200 * > OUTPUT.h LUMA.h 1.200 * > *

vec4 hook() {
    vec4 result = vec4(-0.0052582137, -0.06417352, -0.07820352, -0.0503056);
    result += mat4(-0.011855595, -0.037416924, 0.011794585, -0.008376095, -0.05998823, 0.37585875, -0.2808234, 0.04882308, 0.04354873, -0.029581184, -0.018013768, 0.066074625, 0.03396669, -0.048753425, 0.036185462, -0.008235918) * conv2d_4_0_texOff(vec2(-1, -1));
    result += mat4(-0.012931721, 0.10149975, -0.08835137, 0.026416339, 0.045263182, -0.25378695, 0.34182495, 0.041636858, 0.12604816, -0.040941007, -0.26048204, 0.12628995, -0.030290188, -0.028832037, -0.0276066, -0.04788432) * conv2d_4_0_texOff(vec2(0, -1));
    result += mat4(-0.0034502186, -0.009048646, 0.07336105, -0.0029546684, 0.00032044598, -0.028782444, -0.00011686816, 0.0015661996, -0.06897482, 0.63046974, -0.22233102, 0.11122004, 0.019504767, 0.05388249, -0.030717619, 0.031301) * conv2d_4_0_texOff(vec2(1, -1));
    result += mat4(0.14414288, 0.033996224, -0.28754094, 0.13754497, -0.17237745, -0.16542904, 0.23289317, -0.19897816, 0.038088556, 0.06342498, 0.014098545, -0.049401022, 0.07643989, 0.119266756, -0.104629695, 0.111666135) * conv2d_4_0_texOff(vec2(-1, 0));
    result += mat4(-0.2944326, -0.40418655, 0.5823829, -0.26713455, -0.010507515, -0.31382522, -0.049314275, 0.1625025, 0.51850724, 0.53316987, -0.08380526, 0.23449829, -0.024604188, -0.14943942, 0.43064752, -0.7566736) * conv2d_4_0_texOff(vec2(0, 0));
    result += mat4(-0.026532324, 0.07692242, -0.029860381, 0.01630558, -0.0039500967, 0.090317376, -0.005795778, -0.014981545, -0.0813774, 0.0858132, -0.55146307, 0.15389612, -0.0857405, -0.6495213, -0.02314594, 0.09745843) * conv2d_4_0_texOff(vec2(1, 0));
    result += mat4(0.02859287, 0.02021329, -0.071603745, -0.016018141, -0.01909664, -0.0076371273, 0.032152276, -0.043544702, 0.00741912, 0.021223335, -0.015530782, 0.008267908, 0.0078028026, -0.005539959, -0.0727716, 0.06794858) * conv2d_4_0_texOff(vec2(-1, 1));
    result += mat4(-0.02682219, 0.21979503, 0.13760278, -0.11252586, -0.015397705, -0.06767308, 0.0064779073, -0.007574896, -0.031894226, -0.057890512, 0.0547334, -0.21668032, -0.04039014, -0.012075411, -0.089304894, -0.0936104) * conv2d_4_0_texOff(vec2(0, 1));
    result += mat4(0.015406119, 0.019436423, -0.049738806, 0.019537931, 0.012043425, -0.0223099, -0.0105921915, 0.012751477, 0.09619028, 0.018834464, -0.14176132, 0.10934909, 0.0031357582, 0.030102925, -0.027007064, -0.0012015824) * conv2d_4_0_texOff(vec2(1, 1));
    result += mat4(-0.012850252, 0.041007783, 0.036487482, -0.036766846, -0.04026534, 0.05239262, 0.35136032, 0.012432494, -0.0008649793, 0.017545432, -0.032316796, 0.021706836, -0.0018886793, 0.027170362, 0.08677772, -0.026154196) * conv2d_4_1_texOff(vec2(-1, -1));
    result += mat4(0.018631993, -0.106979914, -0.051885907, 0.031445816, 0.2291837, 0.78461254, -1.2036389, 0.4867393, -0.0032915692, 0.34884816, 0.16714662, -0.052768394, -0.04401847, -0.3252484, -0.112405285, -0.023386627) * conv2d_4_1_texOff(vec2(0, -1));
    result += mat4(-0.0027215292, 0.052401897, -0.012016527, -0.0040711556, 0.07014871, 0.4693889, 0.17685862, 0.009289508, 0.010926686, -0.02431246, -0.034908783, 0.010365825, -0.0030185676, 0.105850585, -0.06564623, -0.013656947) * conv2d_4_1_texOff(vec2(1, -1));
    result += mat4(-0.061824325, -0.057320464, -0.05433097, -0.017715257, 0.097974196, -0.08277088, -0.016455587, 0.08241848, -0.11532659, 0.0028923105, 0.33875138, -0.27099323, 0.025341265, 0.005697926, -0.32277545, 0.35225028) * conv2d_4_1_texOff(vec2(-1, 0));
    result += mat4(0.16319534, 0.10367611, 0.08673698, 0.025203642, -0.22453079, -0.2881458, -0.03051175, 0.5225955, -0.34608844, -0.8403055, 0.12006302, 0.006314384, 0.7156406, 1.0253692, -0.35774457, 0.47183955) * conv2d_4_1_texOff(vec2(0, 0));
    result += mat4(-0.028867831, -0.27999398, 0.013128545, 0.037759215, 0.087926656, 0.77194726, 0.068888195, -0.050243355, 0.016726315, -0.110025644, -0.09468837, 0.037698057, -0.030689599, 0.16822918, 0.030832317, -0.034920923) * conv2d_4_1_texOff(vec2(1, 0));
    result += mat4(-0.0149602275, 0.01624544, -0.17253563, -0.014508564, -0.002437716, -0.0033446793, -0.017673157, -0.041842625, -0.04666112, -0.060664274, 0.06775461, -0.015247243, -0.009306805, -0.0027525304, 0.058402047, -0.048848957) * conv2d_4_1_texOff(vec2(-1, 1));
    result += mat4(-0.3004851, -0.8282919, 0.7204593, -0.06328632, 0.024180923, 0.18910603, 0.22460808, 0.070967615, 0.05226816, -0.12612432, -0.12667441, 0.07068504, -0.07058673, -0.114864446, -0.004368124, -0.114330195) * conv2d_4_1_texOff(vec2(0, 1));
    result += mat4(-0.0012782477, 0.029467467, -0.04980853, -0.037237316, 0.0032200946, -0.061675638, -0.0061002173, 0.016609669, 0.024631264, -0.020262785, -0.043224704, 0.007844941, -0.031594466, 0.006612953, 0.056720074, -0.01598413) * conv2d_4_1_texOff(vec2(1, 1));
    return result;
}

//!DESC [ArtCNN_v0_C4F8] (Conv2D-5)
//!HOOK LUMA
//!BIND conv2d_4_0
//!BIND conv2d_4_1
//!SAVE conv2d_5_1
//!WIDTH LUMA.w
//!HEIGHT LUMA.h
//!COMPONENTS 4
//!WHEN OUTPUT.w LUMA.w 1.200 * > OUTPUT.h LUMA.h 1.200 * > *

vec4 hook() {
    vec4 result = vec4(-0.047003802, -0.05075173, 0.045366324, 0.021421203);
    result += mat4(0.014459612, -0.0077095577, -0.033402298, 0.0037720413, -0.25367865, -0.42870343, 0.11842963, 0.33712742, -0.030712893, 0.10230276, -0.023505, -0.045307495, 0.028973369, 0.13819337, -0.003843787, -0.084743306) * conv2d_4_0_texOff(vec2(-1, -1));
    result += mat4(-0.04370782, 0.006713805, 0.071100496, 0.009129951, -0.3350039, 0.37261337, -0.10758825, -0.1856495, -0.17617553, 0.34339854, -0.11344658, -0.083045036, 0.08722087, -0.14863521, 0.030452898, 0.13658813) * conv2d_4_0_texOff(vec2(0, -1));
    result += mat4(-0.00041382588, -0.07030327, 0.01994469, -0.003118984, -0.045765713, -0.032754723, 0.008121782, -0.02481586, 0.005379038, 0.6402101, -0.34696475, -0.03735481, -0.04471527, 0.058460213, -0.028140713, -0.0013019448) * conv2d_4_0_texOff(vec2(1, -1));
    result += mat4(-0.18629098, 0.32410324, -0.016354568, -0.13404006, 0.14650398, -0.09393905, 0.18116796, -0.17492704, -0.062397003, 0.003861336, 0.10904429, -0.03148348, -0.10783115, 0.098727904, -0.047433898, 0.017267304) * conv2d_4_0_texOff(vec2(-1, 0));
    result += mat4(-0.22495344, -1.0804316, 0.17828989, -0.21273899, 0.043357197, -0.19400717, -0.04661535, -0.19612229, -0.39776653, -0.20066762, 0.27965286, 0.023535334, 0.25844386, -0.79200405, 0.33644047, -0.16630742) * conv2d_4_0_texOff(vec2(0, 0));
    result += mat4(0.16625738, 0.10707909, -0.0627934, 0.07742469, 0.06986927, -0.06939531, -0.018510424, 0.0057835653, 1.2886053, 0.7076225, -0.08164355, 0.5011145, 0.25927493, 0.06091002, -0.30668187, -0.20010707) * conv2d_4_0_texOff(vec2(1, 0));
    result += mat4(-0.024976948, 0.067703046, -0.01143936, -0.0036663793, 0.031429794, -0.0069201495, 0.017511073, -0.011305421, -0.008761139, 0.0077552754, 0.007303444, 0.019186173, -0.03498947, 0.018286284, -0.052668937, 0.0070635267) * conv2d_4_0_texOff(vec2(-1, 1));
    result += mat4(-0.12337813, -0.076961085, -0.18414313, 0.008182149, 0.008697591, -0.016844075, 0.019313555, -0.0244048, 0.065269135, -0.14181015, 0.25748548, 0.022683932, -0.02734802, -0.12574974, -0.021523137, -0.029267075) * conv2d_4_0_texOff(vec2(0, 1));
    result += mat4(-0.0009578746, 0.15279104, -0.007678161, 0.048943885, 0.015997022, 0.04181872, 0.042649943, 0.02044875, 0.05753151, 0.654389, 0.19072285, 0.28442788, -0.09482607, -0.062304262, -0.081929095, -0.07443642) * conv2d_4_0_texOff(vec2(1, 1));
    result += mat4(0.028850546, -0.088448234, 0.049133964, 0.058750685, 0.205837, -0.17807546, -0.1535963, 0.16006699, -0.04708861, -0.03218288, 0.027281212, -0.0074580587, 0.10624684, 0.06799613, -0.00712693, 0.04296547) * conv2d_4_1_texOff(vec2(-1, -1));
    result += mat4(-0.035966437, 0.08780349, -0.04823582, -0.08195384, 0.40349215, 1.5974197, 0.42838192, 0.96788603, 0.1827928, -0.12002803, 0.07833284, 0.2728331, -0.07808785, 0.076615684, 0.10376433, -0.18067542) * conv2d_4_1_texOff(vec2(0, -1));
    result += mat4(0.024683286, 0.035192106, -0.0069826874, 0.020835701, -0.39884815, -0.0994687, -0.06384897, -0.06547817, 0.0072168787, 0.03721163, 0.0052241846, -0.004316973, 0.11618205, -0.020302126, 0.088918746, 0.093780555) * conv2d_4_1_texOff(vec2(1, -1));
    result += mat4(0.059811175, 0.08004888, -0.044677306, -0.061397433, 0.027685601, 0.124551624, -0.07285783, -0.09486666, 0.18279639, -0.39150724, 0.19509909, 0.112744525, -0.15069787, 0.15467219, -0.3915725, 0.042047903) * conv2d_4_1_texOff(vec2(-1, 0));
    result += mat4(-0.25874245, -0.04161551, 0.18987054, -0.067630306, -0.23708905, 0.45481095, 0.19930561, 0.32868505, 1.2379098, 0.9313711, -0.7009202, 0.12792099, -1.2471635, 0.06381135, -0.23446839, -0.16172601) * conv2d_4_1_texOff(vec2(0, 0));
    result += mat4(0.0056606145, -0.074765906, -0.062297393, -0.08399192, -0.20117351, 0.010554146, 0.21812145, 0.2240671, 0.059978094, 0.13668844, -0.028991058, 0.0044781347, -0.11205059, -0.2098101, -0.19826853, -0.08385777) * conv2d_4_1_texOff(vec2(1, 0));
    result += mat4(-0.106216334, -0.099656254, 0.037559535, -0.040124845, 0.03575141, 0.046462256, -0.0067621404, -0.004643851, 0.06096645, -0.052222446, 0.027923634, -0.014916538, 0.02344113, -0.020684833, 0.039960522, -0.009197828) * conv2d_4_1_texOff(vec2(-1, 1));
    result += mat4(0.17454943, -0.24147464, -0.5849585, -0.4382964, -0.18930107, -0.0102761155, -0.11924951, -0.04757071, 0.036154747, 0.02635773, 0.23268199, 0.02855047, 0.18143418, 0.014599913, 0.06146303, 0.052094493) * conv2d_4_1_texOff(vec2(0, 1));
    result += mat4(-0.40926445, -0.18591155, -0.0033769454, -0.3030146, 0.13780533, 0.05244988, 0.07443085, 0.06092141, 0.023145055, -0.05575369, 0.08613014, 0.017436633, -0.014520497, 0.022473628, -0.014281546, 0.01523706) * conv2d_4_1_texOff(vec2(1, 1));
    return result;
}

//!DESC [ArtCNN_v0_C4F8] (Conv2D-6)
//!HOOK LUMA
//!BIND conv2d_0
//!BIND conv2d_5_0
//!BIND conv2d_1
//!BIND conv2d_5_1
//!SAVE conv2d_6_0
//!WIDTH LUMA.w
//!HEIGHT LUMA.h
//!COMPONENTS 4
//!WHEN OUTPUT.w LUMA.w 1.200 * > OUTPUT.h LUMA.h 1.200 * > *

vec4 hook() {
    vec4 result = vec4(0.1104025, 0.16376792, 0.15033095, 0.17158212);
    result += mat4(0.046807073, -0.06458338, -0.12880664, -0.13779937, -0.016382227, 0.0021884583, 0.010229567, 0.022940533, -0.12530549, 0.011565082, 0.016677389, 0.02986313, 0.14209098, -0.017983912, -0.020423997, -0.05864964) * (conv2d_5_0_texOff(vec2(-1, -1)) + conv2d_0_texOff(vec2(-1, -1)));
    result += mat4(0.26582828, 0.024566153, 0.1956244, 0.08119687, -0.05354945, -0.05169455, 0.035437223, 0.056689713, 0.0029489482, 0.018673532, 0.0023433845, 0.02281644, 0.16791499, -0.0022513962, -0.0704773, -0.06605508) * (conv2d_5_0_texOff(vec2(0, -1)) + conv2d_0_texOff(vec2(0, -1)));
    result += mat4(0.0012214304, 0.19586064, -0.03964594, 0.075814694, 0.023986908, -0.028481796, 0.015705494, 0.0010651418, 0.008809665, -0.040806834, 0.016801218, -0.010464747, -0.04244089, -0.0034842566, -0.055590965, -0.05872523) * (conv2d_5_0_texOff(vec2(1, -1)) + conv2d_0_texOff(vec2(1, -1)));
    result += mat4(-0.050564524, -0.12269815, 0.044525493, -0.010119414, -0.17816219, 0.12124771, -0.2327297, 0.1555709, 0.19048278, 0.025473952, 0.09189134, 0.040340323, 0.023530155, -0.052273486, 0.0155145135, -0.15231262) * (conv2d_5_0_texOff(vec2(-1, 0)) + conv2d_0_texOff(vec2(-1, 0)));
    result += mat4(0.30921325, 0.42061692, 0.16972181, -0.02919411, 0.3017766, -0.034553323, 0.3692559, -0.09005685, 0.32575107, 0.7381627, 0.26295295, 0.49096912, 0.32561705, 0.2350094, 0.71261925, 0.5593842) * (conv2d_5_0_texOff(vec2(0, 0)) + conv2d_0_texOff(vec2(0, 0)));
    result += mat4(0.27070037, 0.07461114, 0.25900027, 0.28885344, -0.011348499, -0.053811766, -0.0010580748, -0.032277502, 0.06885022, 0.046424616, 0.065623574, 0.0051241387, -0.34726608, 0.02373139, -0.24916567, 0.15079084) * (conv2d_5_0_texOff(vec2(1, 0)) + conv2d_0_texOff(vec2(1, 0)));
    result += mat4(0.08448349, 0.06947201, 0.038738165, -0.017812887, -0.02242648, 0.03156448, -0.1227982, 0.06177685, 0.00011046821, -0.014522761, 0.029871298, -0.02396199, -0.004407677, 0.025390854, -0.056616936, -0.021130545) * (conv2d_5_0_texOff(vec2(-1, 1)) + conv2d_0_texOff(vec2(-1, 1)));
    result += mat4(0.10231099, 0.1509521, 0.23311429, 0.35185295, -0.003038311, -0.021721024, 0.04667516, -0.2564543, -0.0066089598, -0.0041088834, 0.052936796, 0.18527198, -0.057073593, -0.08674831, 0.036463387, -0.04669641) * (conv2d_5_0_texOff(vec2(0, 1)) + conv2d_0_texOff(vec2(0, 1)));
    result += mat4(-0.054934867, -0.013319857, 0.0917454, 0.13137367, 0.01689308, 0.01371003, -0.014131722, -0.08110496, -0.011654778, 3.763436e-05, 0.009459944, 0.006383263, 0.0076620546, -0.01206191, -0.13340163, -0.065871015) * (conv2d_5_0_texOff(vec2(1, 1)) + conv2d_0_texOff(vec2(1, 1)));
    result += mat4(0.26203495, -0.054846123, -0.045499187, -0.098592795, -0.112317115, 0.033920903, 0.035825495, 0.06460534, 0.029184239, -0.020989848, 0.0037116208, -0.008210433, -0.13535933, 0.0385527, 0.013097941, 0.032048382) * (conv2d_5_1_texOff(vec2(-1, -1)) + conv2d_1_texOff(vec2(-1, -1)));
    result += mat4(-0.15758501, 0.00030527558, -0.02952203, -0.00028340562, -0.030658597, 0.014814448, -0.017366255, -0.011397961, -0.015932703, 0.16228212, 0.016571837, 0.019823115, 0.18869238, 0.015159953, -0.052409444, -0.09242598) * (conv2d_5_1_texOff(vec2(0, -1)) + conv2d_1_texOff(vec2(0, -1)));
    result += mat4(0.03883004, -0.013034755, 0.019163642, 0.022593703, 0.013713462, -0.045944087, 0.016442066, -0.008447375, 0.014039685, -0.044221785, -0.0014146118, 0.005940718, -0.08715792, 0.06354426, -0.04750022, -0.037687354) * (conv2d_5_1_texOff(vec2(1, -1)) + conv2d_1_texOff(vec2(1, -1)));
    result += mat4(-0.30401978, -0.1047185, -0.11761041, -0.06161887, 0.027629545, -0.040161937, 0.08875249, 0.011891686, -0.02656919, -0.065050974, 0.01796236, -0.15279384, -0.018595695, -0.14899875, 0.24043204, -0.08143168) * (conv2d_5_1_texOff(vec2(-1, 0)) + conv2d_1_texOff(vec2(-1, 0)));
    result += mat4(0.18592004, 0.2452583, 0.18720095, 0.2679404, -0.36114198, -0.004959804, -0.04675256, 0.25359896, 0.16890629, -0.02139568, 0.15914889, 0.5147812, 0.089554176, -0.17159072, -0.05561315, 0.028085489) * (conv2d_5_1_texOff(vec2(0, 0)) + conv2d_1_texOff(vec2(0, 0)));
    result += mat4(0.071714394, -0.033552095, 0.068228416, -0.025865216, 0.0593488, -0.061725024, 0.046145666, -0.07498204, -0.0709794, -0.103701845, -0.0033310428, -0.1264833, -0.04459217, 0.23741297, -0.120226994, 0.18278897) * (conv2d_5_1_texOff(vec2(1, 0)) + conv2d_1_texOff(vec2(1, 0)));
    result += mat4(0.025480356, 0.07792426, -0.14088948, 0.014902007, -0.012047534, -0.037257526, -0.0102511635, -0.03639518, -0.010518306, -0.0046842853, -0.026903119, -0.016504813, -0.047304828, -0.046695597, 0.025966248, -0.03323074) * (conv2d_5_1_texOff(vec2(-1, 1)) + conv2d_1_texOff(vec2(-1, 1)));
    result += mat4(0.03498497, 0.038981378, 0.07537001, -0.072160184, 0.035385113, 0.00579784, -0.14650333, -0.11297308, -0.05636532, -0.07417554, 0.055651087, -0.06715398, 0.01544982, 0.023180204, 0.03252024, 0.16357149) * (conv2d_5_1_texOff(vec2(0, 1)) + conv2d_1_texOff(vec2(0, 1)));
    result += mat4(0.0059826504, 0.019939976, 0.0058719167, -0.06300043, 0.025571208, 0.023229493, 0.010113358, -0.07167721, 0.03214688, 0.022568943, -0.039532606, -0.0895288, -0.06560053, -0.0635469, 0.034664348, 0.22530349) * (conv2d_5_1_texOff(vec2(1, 1)) + conv2d_1_texOff(vec2(1, 1)));
    return result;
}

//!DESC [ArtCNN_v0_C4F8] (Depth-To-Space)
//!HOOK LUMA
//!BIND conv2d_6_0
//!WIDTH LUMA.w 2.0 *
//!HEIGHT LUMA.h 2.0 *
//!COMPONENTS 4
//!WHEN OUTPUT.w LUMA.w 1.200 * > OUTPUT.h LUMA.h 1.200 * > *

vec4 hook() {
    vec4 result = vec4(0.0, 0.0, 0.0, 1.0);
    vec2 f0 = fract(conv2d_6_0_pos * conv2d_6_0_size);
    ivec2 i0 = ivec2(f0 * vec2(2.0));
    result.x = conv2d_6_0_tex((vec2(0.5) - f0) * conv2d_6_0_pt + conv2d_6_0_pos)[i0.y * 2 + i0.x];
    return clamp(result, 0.0, 1.0);
}
